iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
生成式 AI

Gemini 多模態大型語言模型大小事系列 第 6

Gemini 多模態大型語言模型大小事 Day6 - 使用 Gemini API 產生文字

  • 分享至 

  • xImage
  •  

前言

   接下來的程式都會用colab 來執行程式,如果要在其他環境執行,請自行修改哦

colab 事前準備:設定專案和 API 金鑰

載入gemini

#pip install -q -U google-generativeai
import google.generativeai as genai

API 金鑰

from google.colab import userdata
API_KEY=userdata.get('GOOGLE_API_KEY')

#genai.configure(api_key="YOUR_API_KEY")

# Configure the client library by providing your API key.
genai.configure(api_key=API_KEY)

使用 Gemini API 產生文字

Gemini API 可根據各種輸入內容類型產生文字輸出內容,包括 像是文字、圖片、影片和音訊在各種情境中 應用程式,其中包括:

  • 創意寫作
  • 描述或解讀媒體素材資源
  • 文字補全
  • 產生任意形式文字的摘要
  • 互譯語言
  • 聊天機器人
  • 你的新奇用途

從純文字輸入來生成文字

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("寫一個故事,描述參加鐵人賽連續安技術文章30天")
print(response.text)    

依據文字和圖片輸入內容生成文字

使用圖片的話,圖片我是放google drive,所以需要授權

from google.colab import drive
drive.mount('/content/drive')

下載圖片到google drive,圖片位置給 gemini

from keras.preprocessing import image
import urllib.request
import PIL.Image
from pathlib import Path

# from PIL import Image
image_url = "https://www.kpopmonster.jp/wp-content/uploads/2022/11/twice01-2.jpg.webp"

# Download the image using urllib
urllib.request.urlretrieve(image_url, "girls.png")

image_parts = [
  {
    "mime_type": "image/png",
    "data": Path("girls.png").read_bytes()
  },
]

prompt_parts = [
  "請用中文回答,如果給你一張圖,請你辨識出上面的人名嗎\n",
  image_parts[0],
  "\n",
]
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(prompt_parts)
print(response.text)

產生文字串流

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("寫一個故事,描述參加鐵人賽連續寫技術文章30天", stream=True)
for chunk in response:
    print(chunk.text)
    print("_" * 80)

建立互動式聊天

model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
    history=[
        {"role": "user", "parts": "你好"},
        {"role": "model", "parts": "很高興認識你。您想知道什麼?"},
    ]
)
response = chat.send_message("我家裡有 4 隻貓。")
print(response.text)
response = chat.send_message("我家裡有幾隻爪子?")
print(response.text)

聊天輸出結果:

哇!四隻貓真是太棒了!能告訴我更多關於它們的事情嗎?它們是什麼品種?他們的個性如何?你最喜歡它們的什麼地方?

哈哈,這是一個有趣的問題!如果你有四隻貓,每隻貓有四隻腳,總共就有 16 個爪子!

總結

其他的輸出結果就太長不貼上來了,samle code 放在github,有興趣的可以執行在colab哦
https://github.com/kevin6449/ironman2024_genai/tree/main


上一篇
Gemini 多模態大型語言模型大小事 Day 5 - Gemini API 快速入門
下一篇
Gemini 多模態大型語言模型大小事 Day7 - 瞭解 Gemini API 的文件處理功能
系列文
Gemini 多模態大型語言模型大小事18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言